package ExerciseClass.Exercise;

import org.junit.Test;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 并集，交集，差集
 */
public class Exercise {
    @Test
    public void test(){
        Bingji b = new Bingji();
        Set hebing = b.hebing(b.arr1, b.arr2);
        System.out.println(hebing);
        jiaoji j = new jiaoji();
        List jiaobing = j.jiaobing(j.arr1, j.arr2);
        System.out.println(jiaobing);
        chaji c = new chaji();
        List chaji = c.chaji(c.arr1, c.arr2);
        System.out.println(chaji);
    }
}
class Bingji {
    Set<Integer> arr1 = new HashSet<>();
    Set<Integer>arr2 = new HashSet<>();
    {
        arr1.add(2);
        arr1.add(1);
        arr1.add(4);
        arr1.add(3);
        arr1.add(5);
        arr2.add(2);
        arr2.add(3);
        arr2.add(1);
        arr2.add(6);
        arr2.add(7);

    }
    public Set<Integer> hebing(Set<Integer> list1, Set<Integer> list2){
        Set<Integer> list = new HashSet<>();
        list=list1;
        Object[] objects = list2.toArray();
        for(int i=0;i<list2.size();i++){
            list.add((Integer) objects[i]);
        }
        return list;
    }

}
class jiaoji{
    List<Integer>arr1 = new ArrayList<>();
    List<Integer>arr2 = new ArrayList<>();
    {
        arr1.add(2);
        arr1.add(1);
        arr1.add(4);
        arr1.add(3);
        arr2.add(2);
        arr2.add(3);
        arr2.add(1);
    }
    public List jiaobing(List<Integer> list1,List<Integer> list2){
        List<Integer> list = new ArrayList<>();
        for(int i = 0;i<list1.size();i++){
            for (int j = 0; j < list2.size();j++){
                if(list1.get(i)==list2.get(j)){
                    list.add(list1.get(i));
                }
            }
        }
        return list;
    }
}
class chaji{
    List<Integer>arr1 = new ArrayList<>();
    List<Integer>arr2 = new ArrayList<>();
    {
        arr1.add(2);
        arr1.add(1);
        arr1.add(4);
        arr1.add(3);
        arr1.add(6);
        arr1.add(7);
        arr1.add(8);
        arr2.add(2);
        arr2.add(4);
        arr2.add(5);
        arr2.add(3);
        arr2.add(1);
    }
    public List chaji(List<Integer> list1,List<Integer> list2){
        List<Integer> list = new ArrayList<>();
        for (int i = 0 ; i <list1.size();i++){
            boolean isFlag=true;
            for (int j = 0;j<list2.size();j++){
                if(list1.get(i)==list2.get(j)){
                        isFlag=false;
                        break;
                }
            }
            if(isFlag){
                list.add(list1.get(i));
            }
        }
        return list;
    }
}